package com.shujia.day06.homework;

import java.util.Scanner;

public class H4CountDay {
    public static void main(String[] args) {
        /*
        1.题目：输入某年某月某日，判断这一天是这一年的第几天？
                分析：以3月5日为例，先把前两个月的加起来，然后再加上5天即本年第几天，特殊情况，闰年且输入月份大于3需考虑多加一天。可定义数组存储1-12月各月天数。
         */

        // 闰年？
        // 普通闰年：公历年份是4的倍数，且不是100的倍数的，为闰年（如2004年、2020年等就是闰年）。
        // 世纪闰年：公历年份是整百数的，必须是400的倍数才是闰年（如1900年不是闰年，2000年是闰年）

        Scanner scanner = new Scanner(System.in);

        // 闰年每月的天数
        // 1月、3月、5月、7月、8月、10月、12月有31天
        int[] runYear = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        // 非润年每月天数
        int[] noRunYear = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

        while (true) {
            System.out.println("请输入年份");
            int year = scanner.nextInt();

            System.out.println("请输入月份");
            int month = scanner.nextInt();

            System.out.println("请输入天");
            int day = scanner.nextInt();

            int countDay = 0;

            if ((year % 4 == 0 & year % 100 != 0) | year % 400 == 0) {
                System.out.println("是闰年");
                for (int i = 0; i < month - 1; i++) {
                    // 循环获取前几个月的天数
                    countDay += runYear[i];
                }
                countDay += day;

            } else {
                for (int i = 0; i < month - 1; i++) {
                    // 循环获取前几个月的天数
                    countDay += noRunYear[i];
                }
                countDay += day;
            }

            System.out.println("总共经过了"+countDay+"天");
        }


    }
}
